List এবং Array এর অপারেশন (map, filter, fold)

Computer Programming - এফ শার্প প্রোগ্রামিং (F# Programming) - Lists এবং Arrays (লিস্ট এবং অ্যারে)
147

List এবং Array এর অপারেশন (map, filter, fold)

List এবং Array হল F# প্রোগ্রামিং ভাষায় সাধারণভাবে ব্যবহৃত ডেটা স্ট্রাকচার। এই দুটি ডেটা স্ট্রাকচারে বিভিন্ন অপারেশন যেমন map, filter, এবং fold ব্যবহার করে ডেটার সাথে কার্যকরীভাবে কাজ করা যায়। এগুলি ফাংশনাল প্রোগ্রামিংয়ের মৌলিক ধারণা যা লিস্ট বা অ্যারের উপাদানগুলির সাথে বিভিন্ন ট্রান্সফরমেশন এবং অ্যাক্সেস অপারেশন সম্পাদন করতে সাহায্য করে।


১. map (ম্যাপ)

map অপারেশনটি একটি ফাংশন প্রতিটি উপাদানের উপর প্রয়োগ করে এবং একটি নতুন লিস্ট বা অ্যারে রিটার্ন করে। এটি মূলত ডেটা ট্রান্সফরমেশনের জন্য ব্যবহৃত হয়, যেখানে প্রতিটি উপাদানকে কিছু পরিবর্তন করা হয়।

List এ map এর ব্যবহার:

let numbers = [1; 2; 3; 4; 5]
let squaredNumbers = List.map (fun x -> x * x) numbers
printfn "%A" squaredNumbers  // আউটপুট: [1; 4; 9; 16; 25]

ব্যাখ্যা:

  • List.map (fun x -> x * x) এই ফাংশনটি প্রতিটি উপাদানের উপর x * x ফাংশন প্রয়োগ করে এবং একটি নতুন লিস্ট রিটার্ন করে।

Array এ map এর ব্যবহার:

let numbers = [|1; 2; 3; 4; 5|]
let squaredNumbers = Array.map (fun x -> x * x) numbers
printfn "%A" squaredNumbers  // আউটপুট: [|1; 4; 9; 16; 25|]

ব্যাখ্যা:

  • Array.map ব্যবহার করে অ্যারের প্রতিটি উপাদানে ফাংশন প্রয়োগ করা হচ্ছে এবং একটি নতুন অ্যারে তৈরি করা হচ্ছে।

২. filter (ফিল্টার)

filter অপারেশনটি একটি শর্তের ভিত্তিতে উপাদানগুলোকে ফিল্টার করে, অর্থাৎ শর্ত পূরণকারী উপাদানগুলো রেখে বাকি উপাদানগুলো বাদ দেয়। এটি শুধুমাত্র সেসব উপাদানগুলো রিটার্ন করে যা শর্ত পূর্ণ করে।

List এ filter এর ব্যবহার:

let numbers = [1; 2; 3; 4; 5]
let evenNumbers = List.filter (fun x -> x % 2 = 0) numbers
printfn "%A" evenNumbers  // আউটপুট: [2; 4]

ব্যাখ্যা:

  • List.filter (fun x -> x % 2 = 0) এই ফাংশনটি শুধুমাত্র সেসব উপাদান নির্বাচন করবে যা even (যেগুলোর ভাগফল ০)।

Array এ filter এর ব্যবহার:

let numbers = [|1; 2; 3; 4; 5|]
let evenNumbers = Array.filter (fun x -> x % 2 = 0) numbers
printfn "%A" evenNumbers  // আউটপুট: [|2; 4|]

ব্যাখ্যা:

  • Array.filter ব্যবহার করে অ্যারের মধ্যে সেসব উপাদান নির্বাচন করা হয়েছে যা শর্ত পূর্ণ করেছে।

৩. fold (ফোল্ড)

fold অপারেশনটি একটি একক মান তৈরি করতে লিস্ট বা অ্যারের উপাদানগুলিকে একত্রিত করে। এটি একটি এক্সপ্লিকিট ফাংশন এবং একে একে প্রতিটি উপাদানের উপর কোনো অ্যাকশান প্রয়োগ করে এবং একটি অ্যাকিউমুলেটর বা স্টেট মানে এটি আপডেট হয়।

  • List.fold বা Array.fold প্রথম আর্গুমেন্ট হিসেবে একটি স্টেট (এ্যাকিউমুলেটর), দ্বিতীয় আর্গুমেন্ট হিসেবে একটি ফাংশন এবং তৃতীয় আর্গুমেন্ট হিসেবে একটি লিস্ট বা অ্যারে নেয়।
  • এটি প্রতিটি উপাদানকে একের পর এক অ্যাকিউমুলেটরের সাথে যুক্ত করে এবং ফলস্বরূপ একটি একক মান রিটার্ন করে।

List এ fold এর ব্যবহার:

let numbers = [1; 2; 3; 4; 5]
let sum = List.fold (fun acc x -> acc + x) 0 numbers
printfn "Sum: %d" sum  // আউটপুট: Sum: 15

ব্যাখ্যা:

  • List.fold (fun acc x -> acc + x) 0 এই ফাংশনটি একটি এক্সপ্লিকিট অ্যাকিউমুলেটর 0 থেকে শুরু করে প্রতিটি উপাদান x এর সাথে যোগফল করে, এবং একটি একক ফলাফল 15 রিটার্ন করে।

Array এ fold এর ব্যবহার:

let numbers = [|1; 2; 3; 4; 5|]
let sum = Array.fold (fun acc x -> acc + x) 0 numbers
printfn "Sum: %d" sum  // আউটপুট: Sum: 15

ব্যাখ্যা:

  • Array.fold (fun acc x -> acc + x) 0 ব্যবহার করে অ্যারের উপাদানগুলোর যোগফল বের করা হয়েছে, যেখানে acc হচ্ছে অ্যাকিউমুলেটর এবং x হচ্ছে প্রতিটি উপাদান।

সংক্ষিপ্ত তুলনা

অপারেশনবর্ণনাব্যবহার
mapএকটি ফাংশন প্রতিটি উপাদানে প্রয়োগ করে একটি নতুন লিস্ট বা অ্যারে তৈরি করে।উপাদানগুলোর মান পরিবর্তন করা।
filterএকটি শর্তের ভিত্তিতে উপাদানগুলো ফিল্টার করে, শর্ত পূর্ণ করা উপাদানগুলো রেখে দেয়।নির্দিষ্ট শর্ত পূর্ণ করা উপাদানগুলির নির্বাচন।
foldএকক মানে উপাদানগুলিকে একত্রিত করে।উপাদানগুলোর উপর অ্যাকিউমুলেটর প্রয়োগ করে একক ফলাফল তৈরি করা।

উপসংহার

map, filter, এবং fold হল ফাংশনাল প্রোগ্রামিংয়ের অত্যন্ত শক্তিশালী এবং সাধারণ অপারেশন যা F# এর মত ভাষায় ব্যবহৃত হয়। এগুলি লিস্ট বা অ্যারে অপারেশন করতে খুবই কার্যকরী। map ডেটা ট্রান্সফর্মেশন, filter ডেটা সিলেকশন এবং fold ডেটা একত্রিত করার জন্য ব্যবহৃত হয়। এগুলির মাধ্যমে আপনি ফাংশনাল প্রোগ্রামিংয়ের মূল ধারণাগুলির সাহায্যে সহজে এবং কার্যকরভাবে ডেটা পরিচালনা করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...